home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / util / misc / CPU112.lha / PCInhibit030.asm < prev    next >
Assembly Source File  |  1995-04-17  |  2KB  |  111 lines

  1. ; PCInhibit030 v1.0 (17.4.95)
  2. ; (c) by Martin Berndt
  3. ;
  4. ; TAB-Size: 10
  5.  
  6. START    move.l    $4.w,a6
  7.     cmpi.w    #37,LIB_VERSION(a6)
  8.     bcs.s    Quit
  9.     jsr    _LVOForbid(a6)
  10.     move.w    AttnFlags(a6),d0
  11.     btst    #AFB_68030,d0
  12.     beq.s    Quit0
  13.     btst    #AFB_68040,d0
  14.     bne.s    Quit0
  15.     lea    LibList(a6),a0
  16.     lea    expname(pc),a1
  17.     jsr    _LVOFindName(a6)
  18.     tst.l    d0
  19.     beq.s    Quit0
  20.     move.l    d0,a4
  21.     exg    a4,a6
  22.     moveq    #1,d2
  23.     lea    Products(pc),a2
  24. loop1    suba.l    a0,a0
  25.     movem.l    (a2)+,d0-d1
  26.     jsr    _LVOFindConfigDev(a6)
  27.     tst.l    d0
  28.     bne.s    FoundCD
  29.     dbf    d2,loop1
  30.     bra.s    Quit0
  31. FoundCD    exg    a4,a6
  32.     move.l    d0,a0
  33.     movem.l    cd_BoardAddr(a0),d5-d6
  34.     tst.l    d5
  35.     beq.s    Quit0
  36.     lea    GetTC(pc),a5
  37.     jsr    _LVOSupervisor(a6)
  38.     move.l    d0,d7
  39.     bpl.s    Quit0
  40.     lea    TC_REGs(pc),a0
  41.     moveq    #3,d0
  42.     moveq    #0,d4
  43. loop2    cmp.l    (a0)+,d7
  44.     beq.s    Main
  45.     addq.l    #1,d4
  46.     dbf    d0,loop2
  47. Quit0    jsr    _LVOPermit(a6)
  48. Quit    moveq    #0,d0
  49.     rts
  50.  
  51. Main    jsr    _LVODisable(a6)
  52.     moveq    #0,d0
  53.     lea    SetTC(pc),a5
  54.     jsr    _LVOSupervisor(a6)
  55.     lea    GetCRP(pc),a5
  56.     jsr    _LVOSupervisor(a6)
  57.     move.l    d0,a0
  58.     move.l    (a0),d0
  59.     moveq    #-16,d1
  60.     and.w    d1,d0
  61.     move.l    d0,a0
  62. loop3    move.l    (a0)+,d0
  63.     and.w    d1,d0
  64.     cmp.l    d5,d0
  65.     bne.s    loop3
  66.     add.l    d6,d5
  67. loop4    bset    #6,-1(a0)
  68.     move.l    (a0)+,d0
  69.     and.w    d1,d0
  70.     cmp.l    d5,d0
  71.     bcs.s    loop4
  72. skip    move.l    d7,d0
  73.     lea    SetTC(pc),a5
  74.     jsr    _LVOSupervisor(a6)
  75.     jsr    _LVOEnable(a6)
  76.     jsr    _LVOCacheClearU(a6)
  77.     bra.s    Quit0
  78.  
  79.     opt    p=68030
  80.  
  81. GetTC    clr.l    -(sp)
  82.     pmove.l    tc,(sp)
  83.     move.l    (sp)+,d0
  84.     rte
  85.  
  86. GetCRP    subq.w    #8,sp
  87.     pmove.d    crp,(sp)
  88.     addq.w    #4,sp
  89.     move.l    (sp)+,d0
  90.     rte
  91.  
  92. SetTC    move.l    d0,-(sp)
  93.     pmove.l    (sp),tc
  94.     pflusha
  95.     addq.w    #4,sp
  96.     rte
  97.  
  98. Products    dc.l    513,103    ; A2386-SX
  99.     dc.l    513,1    ; A2086, A2286
  100.  
  101. TC_REGs    dc.l    $80F17324    ; CPU-Control
  102.     dc.l    $80F17540 ; C= CPU
  103.     dc.l    $80F08630 ; A3000
  104.     dc.l    $80F0D400 ; SoftBoot
  105.  
  106.     dc.b    "$VER: PCInhibit030 1.0 (17.4.95)",0
  107.  
  108. expname    dc.b    "expansion.library",0
  109.  
  110.     end
  111.